1. Field of the Invention
The present invention generally relates to data processing systems, and more particularly to shared disk clones created for a high-availability database system.
2. Description of the Related Art
Large computer networks provide the necessary infrastructure for performing a variety of important functions. For example, today, databases and servers make it is possible to shop for basic consumer goods such as food and clothing over the internet by browsing websites illustrating product offerings from various vendors. As computer use becomes more pervasive, businesses offering products and services over a computer network face increasing data traffic accessing the servers configured to process consumer requests for the offered products and services. As a result, server failure or unavailability for unacceptably long periods of time may severely impact the profitability of a business.
Because availability of a computer system, for example, a server, may be crucial to customer satisfaction and profitability of a business, several solutions have been devised to increase the availability of servers and reduce the catastrophic effects of system failure. One such solution is to replicate the computer and storage systems to provide redundancy. For example, a primary server system may be configured to receive and process requests received over a network from multiple client systems. To process the requests, the primary server system may access a database located in the primary server system and/or a first memory device associated with the primary server system.
A copy of the database accessed by the primary server system may be maintained at a secondary server system and/or a second memory device associated with the secondary server system. To maintain an accurate version of the database on the secondary computer system, the primary server system may be configured to communicate with the secondary server system so that the secondary server system performs the same sequence of operations performed by the primary server system. Therefore, if the primary server system fails, the secondary server system may continue to process requests without interrupting service.
One problem with the solution described above is that a large number of resources may be necessary to implement such a solution. For example, replication requires that the secondary server system have access to at least the same amount of disk storage as the primary server system to maintain an accurate and up to date copy of the database. In applications that require large amounts of disk storage, providing such redundant capacity may become cost prohibitive.
Yet another problem is that a tight relationship must be maintained between the primary server system and the secondary server system to ensure that the secondary server system synchronously performs operations in conjunction with the primary server system. In some instances, for example, in government and military applications, it may be necessary to maintain two or more secondary server systems to provide adequate backup in case a double failure occurs. Further, the backup systems are frequently located at physically distinct locations from the primary server. However, the communication between a primary server system and a tightly-coupled secondary server system may introduce unacceptable latencies, thereby making the computer system unavailable for use.
Accordingly, there is a need for methods and systems for providing an improved high availability computer system that utilizes resources more efficiently and is capable of implementing multiple back up systems without affecting performance.